package com.wmm.fast.main.shop2Strategy;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Scanner;

/**
 * 写写画画 收银业务
 * 调用方只需要选择策略,拿到结果,不需要知道如何实现,增加策略只需要增加对应的策略子类,以及工厂构造.
 * 策略模式是定义一系列算法的方法,以相同的调用方式,调用所有算法,减少算法与调用之间的耦合,简化流程.
 * 只要在分析过程中,需要在不同的时间应用不同的业务规则,就可以考虑使用策略模式处理变化
 * @Auther: Token360
 * @Date: 2018/9/5 14:41
 * @Description:
 */
public class ShopCashiersExecute {

    private static Logger log = LoggerFactory.getLogger(ShopCashiersExecute.class);

    public static void working(String casher) {
        log.info("收银员[{}]Working...",casher);
        double payMoney = new Scanner(System.in).nextDouble();
        ShopCashiersContext context = new ShopCashiersContext(1);
        log.info("没有可参与优惠,收银:[{}]元",payMoney);
        context.contextInterfaceStrategy(payMoney);

    }

    public static void main(String[] args) {
        working("朔夜");
    }
}
